延續昨日我們對 Metadata 讀取 以及 Trino Splits 概念之介紹,我們知道Splits 數量一旦過多,將很可能會導致:
除了效能問題,公司作為營利單位當然也關心這些操作到底花不花錢,當然這邊僅就 Trino Query Iceberg 本身產生的費用做討論,Trino cluster 的機器費用不在本文的探討範圍。
Trino Query Iceberg 實際產生的費用主要為 S3 的 I/O 成本,可以細分為:
$0.0004 per 1000 GET requests
$0.0005 per 1000 requests
$0.09/GB
故上節討論因 Trino query Iceberg 產生之 Metadata 讀取、 Trino Splits 皆會讓 GET
以及 LIST
費用上升;
若如筆者公司曾考慮將 Trino cluster 放在自建雲上,以此避開昂貴的 AWS EC2 機器費用,拿 Trino cluster 的經典組合: Coordinator *1 + Worker *3,機器規格為 r6i.2xlarge
* 4 來計算,一個月的成本約 788 美金:
## AWS EC2 (r6i.2xlarge -> 8C64G) 價格
價格:USD 0.2737 / 小時(Linux)
每日:0.2737 * 24 = USD 6.5688
每月(30 天):6.5688 * 30 * 4 = $788.256 USD
自建機房若僅考慮硬體費用一個月的成本約 177 美金:
## 自建機房硬體 價格:
CPU:Intel Xeon Gold / AMD EPYC(8C16T)約 $800 USD
RAM:64GB ECC DDR4 約 $200 USD
主機板 / 機殼 / 電源 / 散熱:約 $500 USD
磁碟:500GB SSD 約 $60 USD
-----------------------------------------
總計單台:約 $1,600 USD -> 4 台共:$6,400 USD
-> 硬體折舊抓 3 年(36 個月),每月約:6400 / 36 = $177.77 USD
這樣看起來是不是非常划算,但若 每月 對 AWS S3 的 Data transfer out 達到 7,000 GB = $630 USD ( 筆者公司的 訂單資料
就已達 10 TB ) ,就會把省下來的錢全部吐回去給 Amazon。
遇到問題該怎麼辦?別急。系列文明日《冰山不止一角,Iceberg 與 S3 (五)》,將帶你逐步走過筆者嘗試過的優化方式。相信讀完之後,你會對解法更加清晰,原本的疑惑也能一掃而空。
My Linkedin: https://www.linkedin.com/in/benny0624/
My Medium: https://hndsmhsu.medium.com/